<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 异常处理: 当程序出现问题,通过错误提示给用户提示

        // 异常处理: 在程序中可能出现问题的地方,可以加异常处理

        // 异常处理的方式:
        // a) 抛出异常:当程序出问题了,直接提示程序的问题
        // 语法: throw new Error('错误提示信息')
        // 注意: 当程序中一旦抛出异常,后面的代码就不会再执行了


        // b) 捕获异常: 当程序中代码确实出现了异常,也别捕获到了,那么执行异常处理(抛出异常)
        // 当程序代码没有异常,那么异常处理也不会执行(不会抛出异常)

        // 使用方式:
        // 1) 在可能发生问题的代码上,加try
        // 2) 在try之后 加catch,catch中就是用来处理异常的

        // 总结:
        // 1.try中的代码发生异常,那么程序才会执行 catch中的代码
        // 2.try中的代码如果没有异常,那么程序不会执行 catch中的代码
        // 3.如果希望程序中某些功能代码永远都要执行,则将代码放到finally中

        // function fn(a, b) {
            // try {
                // console.log(a, b)
            // } catch {
                // throw new Error('参数使用有误');
            // } finally {
                // console.log(123);
            // };
        // }
        // fn(1, 2)

        // debugger 调试: 自动化的断点调试,代码中如果加入debugger,那么程序咋断点调试的时候,会直接进入
    </script>
</body>

</html>